package main

import "fmt"

var (
	i = 0
)

func main() {
	for i := 0; i < 10; i++ {
		fibonacci := fibonacci(i)
		fmt.Println(fibonacci)
	}
	fmt.Println(fibonacci)
	// recursion()
	// fmt.Println(Factorial(15))
}

// 一个递归函数
func recursion() {
	i++
	fmt.Println("一个递归函数")
	if i == 3 {
		fmt.Println("递归终止")
		return
	}
	recursion()
}

// 阶乘
func Factorial(n uint64) (result uint64) {
	if n > 0 {
		result = n * Factorial(n-1)
		return result
	}
	return 1
}

// 斐波那契数列
func fibonacci(n int) int {
	if n < 2 {
		return n
	}
	return fibonacci(n-2) + fibonacci(n-1)
}
